//系统根目录
//var pro_path = window.PROJECT_PATH;
//检查当前浏览器是否具备数组的indexOf方法，如果没有则加上该方法
//IE8及以下浏览器没有这个方法，此代码予以补充
if (!Array.prototype.indexOf){
	Array.prototype.indexOf = function(elt /*, from*/){
		var len = this.length >>> 0;
		
		var from = Number(arguments[1]) || 0;
		from = (from < 0) ? Math.ceil(from) : Math.floor(from);
		if (from < 0)
		  from += len;
		
		for (; from < len; from++){
			if (from in this &&	this[from] === elt)
				return from;
		}
		return -1;
	};
}

//时间戳转日期
function getLocalTime(nS) { 
	var now=new Date(parseInt(nS)*1000); 
	var year=now.getFullYear(); 
	var month=now.getMonth()+1; 
	var date=now.getDate(); 
	var hour=now.getHours(); 
	var minute=now.getMinutes(); 
	var second=now.getSeconds(); 
	return year+"-"+month+"-"+date+" "+hour+":"+minute+":"+second; 
} 

//检查中文字符长度
function strlen(s){
	var l = 0;
	var a = s.split("");
	for (var i=0;i<a.length;i++) {
		if (a[i].charCodeAt(0)<299) {
			l++;
		}else{
			l+=2;
		}
	}
	return l;
}



//截取字符串 包含中文处理(串,长度,增加...)   
function subStringCh(str, len, hasDot){ 
    var newLength = 0; 
    var newStr = ""; 
    var chineseRegex = /[^\x00-\xff]/g; 
    var singleChar = ""; 
    var strLength = str.replace(chineseRegex,"**").length; 
    for(var i = 0;i < strLength;i++){ 
        singleChar = str.charAt(i).toString(); 
        if(singleChar.match(chineseRegex) != null){ 
            newLength += 2; 
        }else{ 
            newLength++; 
        } 
        if(newLength > len){ 
            break; 
        } 
        newStr += singleChar; 
    } 
     
    if(hasDot && strLength > len){ 
        newStr += ".."; 
    } 
    return newStr; 
} 

//js截取字符串函数
function SetString(str,len){
	var strlen = 0; 
	var s = "";
	for(var i = 0;i < str.length;i++){
		if(str.charCodeAt(i) > 128){
			strlen += 2;
		}else{ 
			strlen++;
		}
		s += str.charAt(i);
		if(strlen >= len){ 
			return s ;
		}
	}
	return s;
}

//产生6位随机数
function GetRandomNum(){ 
	var Min = 100000;
	var Max = 999999
	var Range = Max - Min;   
	var Rand = Math.random();   
	return(Min + Math.round(Rand * Range));   
} 

//产生随机数,和renderSize配套使用，用户编辑器插入附件的随机数文件名
function roundFun(numberRound,roundDigit){  
    var digit;  
    digit=1;  
    digit=Math.pow(10,roundDigit)  
    return(Math.round(numberRound*digit)/digit);  
}  

//字节格式化KB,MB,GB函数
function renderSize(value){
  if(null==value||value==''){
    return "0 Bytes";
  }
  var unitArr = new Array("Bytes","KB","MB","GB","TB","PB","EB","ZB","YB");
  var index=0;

  var srcsize = parseFloat(value); 
  var size =roundFun(srcsize/Math.pow(1024,(index=Math.floor(Math.log(srcsize)/Math.log(1024)))),2); 
  return size+unitArr[index];
}

//删除所有打开的tab面板
function mainremovePanel(){
	var tabs = $("#main-tab").tabs("tabs");
	var length = tabs.length;
	for(var i = 1; i < length; i++) {
		var onetab = tabs[1];
		var title = onetab.panel('options').tab.text();
			//var title = onetab.panel('options').title;
		$("#main-tab").tabs("close", title);
	}
}




/*获得短信类型数组返回对应的中文字符*/
function smstypestr(n){
	switch (parseInt(n)){
		case 1:
			t="内部短信";
			break;
		case 2:
			t="内部邮件";
			break;
		case 3:
			t="通知公告";
			break;
		case 4:
			t="工作流";
			break;
		default:
			t="未知";
	}
	return t;
}

//接收到新短信提醒后判断并刷新已经打开的模块
function module_refresh_sms(v,v_id){
	$('#main_'+v_id).datagrid('reload');//刷新对应列表
	if($('#main-tab').tabs('exists', v)){
		//$('#main-tab').tabs('select', v); 
		$('#'+v_id).datagrid('reload');//刷新对应列表
	}
}

/*内部邮件搜索、高级搜索*/
function advanced_search(m,v){
	if(v == '高级'){
		if(m.indexOf('_') >=0){
			var m_offset=m.indexOf('_');
			var mo = m.substring(0,m_offset);
		}else{
			var mo = m;
		}
		var options = {
			region: 'north',
			height:140,
			border:false,
			iconCls:'icon-search',
			href:PROJECT_PATH+mo+'/advanced_search/'+m
		};
		$('#'+m+'_ildds').layout('add', options);//动态添加高级搜索区域
		
		$('#'+m+'_advancedSearch span:last').empty().append('关闭高级');
		$('#'+m+'_advancedSearch').attr('onclick',"advanced_search('"+m+"','关闭高级')");
		$("."+m+"_search_form").hide();
	}else if(v == '关闭高级'){		
		removePanel(m);
		$('#'+m+'_list').datagrid('options').queryParams=[];        
		$('#'+m+'_list').datagrid('reload'); 
	}else if(v == m+"_search_key"){
		var queryParams = $('#'+m+'_list').datagrid('options').queryParams;  
		if($("#"+m+"_search_key").val())
			queryParams.title = $("#"+m+"_search_key").val();
		else
			delete queryParams.title;

		$('#'+m+'_list').datagrid('options').queryParams=queryParams;        
		$('#'+m+'_list').datagrid('reload'); 	
	}
}


/*内部邮件高级搜索关闭后相关动作*/
function removePanel(m){
	$('#'+m+'_ildds').layout('remove', 'north');
	$('#'+m+'_advancedSearch span:last').empty().append('高级');
	$('#'+m+'_advancedSearch').attr('onclick',"advanced_search('"+m+"','高级')");	
	$("."+m+"_search_form").show();
}

//获取编辑器中的内容
function getContent(id) {
	var arr = [];
	//arr.push("使用editor.getContent()方法可以获得编辑器的内容");
	//arr.push("内容为：");
	arr.push(UE.getEditor(id).getContent());
	return arr.join("\n");
}

//JS 截取文件名后缀
function interception_suffix(file_name){
	var result =/\.[^\.]+/.exec(file_name);
	return result;
}


/*----------email模块相关函数---------------------------------------------------------------------*/
//EMAIL模块收件箱和发件箱上下条函数
/*参数说明：
	f 为u或n，分别表示上一条或下一条
	m 为in或sent，分别表示收件箱或发件箱
*/
function up_down_row(f,m){
	var row_num = $('#email_'+m+'_list').datagrid('getRows');//返回当前页的总行数
	
	var s_row = $('#email_'+m+'_list').datagrid('getSelected');//返回第一个选中的行或者 null。
	var row_index = $('#email_'+m+'_list').datagrid('getRowIndex',s_row);//返回指定行的索引，row 参数可以是一个行记录或者一个 id 字段的值。
	
	row_index = (f=='u')?row_index-1:row_index+1;
	if(row_index >= 0 && row_index < row_num.length){
		var s_row_n = $('#email_'+m+'_list').datagrid('selectRow',row_index);//新选中一行，F参数决定上一行还是下一行
	
		var s_row_n_v = $('#email_'+m+'_list').datagrid('getSelected',s_row_n);//返回第一个选中的行或者 null。
		//alert(s_row.title+','+s_row_n_v.title);
		
		var tab = $('#main-tab').tabs('getSelected');
		var id = (m == 'in')?s_row_n_v.id:s_row_n_v.bodyid;
		$.get(PROJECT_PATH+'email/contentbox/'+m+'/'+id+'/'+f,function(result){
			if(result.success){
				var title_head = (m == 'in')?'收件箱：':'发件箱：';
				var title = (strlen(result.data.title) >10)?SetString(result.data.title,10)+'..':result.data.title;//如果标题超过10个字符，则截取10个字符加..
				var es_id = 'es_'+result.data.id; //拼接面板ID
				var pro_id = (m == 'in')?result.data.emailid:result.data.bodyid;
				$('#main-tab').tabs('update', {
					tab: tab,
					options: {
						id: es_id,
						title: title_head+title,
						href: PROJECT_PATH+'email/contentbox/'+m+'/'+pro_id  // the new content URL
					}			
				});
	
			}else{
				$.messager.alert('错误',result.errMsg,'error');
			}
		},'json');
	
	}else if(row_index < 0){
		$.messager.alert('错误','上一条没有了','error');
	}else if(row_index >= row_num.length){
		$.messager.alert('错误','下一条没有了','error');	
	}
}	

//EMAIL模块中，列表界面删除邮件函数
function del_email_list(m){
	var getobj = $('#email_'+m+'_list').datagrid("getChecked");
	var getid = [];
		if(m == 'in'){
			$.each(getobj, function(index, item){
				getid.push(item.id);
			}); 
		}else if(m == 'sent'){
			$.each(getobj, function(index, item){
				getid.push(item.bodyid);
			}); 
		}
	if(getid.length == 0){
		$.messager.alert('提示','要删除邮件，请选取要操作的行','warning');
	}else{
		$.messager.confirm('提示', '确定要删除选中的邮件吗?', function(r){
			if(r){
				$.post(PROJECT_PATH+'email/del_email',{getid:getid,m:m},function(result){
					if(result.success){
						$('#email_'+m+'_list').datagrid('reload');
					}else{
						$.messager.alert('错误',result.errorMsg,'error');
					}
				},'json');
			}
		});	
	}
}

//EMAIL模块中邮件详细页面，删除当前邮件
function del_email_content(id,m){
	var getid = [id];
	if(getid.length == 0){
		$.messager.alert('错误','提取邮件ID出错','error');
	}else{  
		$.messager.confirm('提示', '确定要删除选中的邮件吗?', function(r){
			if(r){          
				$.post(PROJECT_PATH+'email/del_email',{getid:getid,m:m},function(result){
					if(result.success){
						$('#email_'+m+'_list').datagrid('reload');//刷新邮件列表
						
						//获取当前面板索引并关闭当前面板
						var tab = $('#main-tab').tabs('getSelected');
						var index = $('#main-tab').tabs('getTabIndex',tab);
						$("#main-tab").tabs("close",index);
					}else{
						$.messager.alert('错误',result.errorMsg,'error');
					}
				},'json');
			}
		});	
	}
}

//EMAIL模块 ，转发、重发、回复邮件函数
function email_add_again(v,id){

	//转发前先检查有无新邮件标签面板，如果有先关闭
	if ($('#main-tab').tabs('exists', '新邮件')){
		$('#main-tab').tabs('close', '新邮件'); 
	}
	
	//然后关闭当前标签面板
	var tab = $('#main-tab').tabs('getSelected');
	var index = $('#main-tab').tabs('getTabIndex',tab);
	$('#main-tab').tabs('close', index); 
	
	//然后新建添加'新邮件'面板，并根据提交参数判断是转发、重发、回复
	$("#main-tab").tabs('add',{
		title: '新邮件',
		href: PROJECT_PATH+'email/emailadd/'+v+'/'+id,
		selected: true,
		closable:true,
		iconCls:'icon-add'
	});
}

/*----------workflow相关函数---------------------------------------------------------------------*/
//工作流转交下一步执行删除对应面板和关闭对话框
function workflow_if_removePanel(run_id){
	var wf_obj = $('#main-tab').find("#workflow_"+run_id);//获取面板ID对象对象
	if (wf_obj.length>0){ //如果存在
		var tab_index = wf_obj.parent().index();//获取指定面板的索引号
		$('#main-tab').tabs('close',tab_index); //关闭面板
	}
}


//删除流程
function flow_del(run_id){
	$.messager.confirm('确认','删除后不可恢复，您确定要删除该流程吗?',function(r){
		if (r){
			$.post(PROJECT_PATH+'workflow/flow_del',{
				run_id:run_id
			},function(data,status){
				if(data.success){
					$('#workflow_list').datagrid('reload');	
				}
			},'JSON');	
		}
	});
}

//收回流程
function flow_back(run_id,ps_id){
	$.messager.confirm('确认','您确定要收回该流程吗?',function(r){
		if (r){
			$.post(PROJECT_PATH+'workflow/flow_back',{
				run_id:run_id,
				ps_id:ps_id
			},function(data,status){
				if(data.success){
					$('#workflow_list').datagrid('reload');	
				}
			},'JSON');	
		}
	});
}

//结束流程
function flow_end(run_id,ps_id){
	$.messager.confirm('确认','您确定要结束该流程吗?',function(r){
		if (r){
			$.post(PROJECT_PATH+'workflow/flow_end',{
				run_id:run_id,
				ps_id:ps_id
			},function(data,status){
				if(data.success){
					workflow_if_removePanel(run_id);
					$('#workflow_list').datagrid('reload');	
				}
			},'JSON');	
		}
	});
}

//双击行或点击办理按钮来办理
function flow_transact(id,ps_id,title){
	var short_title = (strlen(title) >10)?SetString(title,10)+'..':title;//如果标题超过10个字符，则截取10个字符加..
	var wf_id = 'workflow_'+id; //拼接面板ID
	var wf_obj = $('#main-tab').find("#"+wf_id);//获取面板ID对象对象
	//alert(es_obj.length);
	
	if (wf_obj.length>0){ //如果存在
		var tab_index = wf_obj.parent().index();//检查该对象的父元素在其父元素中的索引
		$('#main-tab').tabs('select', tab_index); //选择该索引对应的面板
		
		/*
		//选择后刷新该面板，目前为多标签模式，所以不执行该操作
		var tab = $('#main-tab').tabs('getSelected');   			    
		$("#main-tab").tabs('update',{  
			tab:tab,  
			options:{  
				id:'workflow_'+data.id,
				title:tab.title,  
				href:PROJECT_PATH+'workflow/contentbox/'+data.id   
			}  
		});
		*/
	} else {
		/**添加一个tab标签**/
		$("#main-tab").tabs('add',{
			method:'post',
			id: wf_id,
			title: '工作流：'+short_title,
			href: PROJECT_PATH+'workflow/flow_transact',
			queryParams:{
				id:id,
				ps_id:ps_id,
				is_v:1
			},
			tabWidth:'160',
			selected: true,
			closable:true,
			onLoad:function(){
				//为面板添加详细标题属性 
				var item1 = $('.tabs-selected').find("span:first");
				$('#main-tab').find(item1).attr("title",title);
				
				//刷新收件箱列表
				$('#workflow_list').datagrid('reload');		
				$('#main_workflow_list').datagrid('reload');				
			}
		});
	}	
}

//公共dialog弹出窗口方法
function dialog_public(title,url){
	var w = arguments[2] ? arguments[2] : 600;
	var h = arguments[3] ? arguments[3] : 500;
	var on = arguments[4] ? arguments[4] : '';
	$('#dialog_custom_box').dialog({
		title: title,
		width: w,
		height: h,
		closed: false,
		cache: false,
		href: PROJECT_PATH+url,
		modal: true,
		onClose:function(){
			//关闭该对话框时执行的语句
			on;
		}
	});
}

/*----------其他测试函数---------------------------------------------------------------------*/
//该函数用于测试遍历对象，部署时可以删除
function allPrpos ( obj ) { 
	// 用来保存所有的属性名称和值 
	var props = "" ; 
	// 开始遍历 
	for ( var p in obj ){ // 方法 
		if ( typeof ( obj [ p ]) == " function " ){
			obj [ p ]() ; 
		} else { // p 为属性名称，obj[p]为对应属性的值 
			props += p + " = " + obj [ p ] + " /t " ; 
		}
	} // 最后显示所有的属性 
	alert ( props ) ;
}